home *** CD-ROM | disk | FTP | other *** search
- package com.extensibility.rock;
-
- import java.awt.Toolkit;
- import java.util.Enumeration;
- import java.util.Vector;
- import javax.swing.text.AbstractDocument;
- import javax.swing.text.AttributeSet;
- import javax.swing.text.BadLocationException;
- import javax.swing.text.DefaultStyledDocument;
- import javax.swing.text.JTextComponent;
-
- public class AutoCompleteDocument extends DefaultStyledDocument {
- Vector knowns;
- JTextComponent fld;
-
- public AutoCompleteDocument(JTextComponent var1, Enumeration var2) {
- this.fld = var1;
- this.knowns = new Vector();
-
- while(var2.hasMoreElements()) {
- this.knowns.addElement(var2.nextElement());
- }
-
- }
-
- public void insertString(int var1, String var2, AttributeSet var3) throws BadLocationException {
- if (var2.length() != 1) {
- super.insertString(var1, var2, var3);
- } else {
- char var4 = var2.charAt(0);
- super.insertString(var1, var2, var3);
- if (var1 >= ((AbstractDocument)this).getLength() - 1) {
- String var5 = this.fld.getText();
-
- for(int var6 = 0; var6 < this.knowns.size(); ++var6) {
- String var7 = (String)this.knowns.elementAt(var6);
- String var8 = var7.substring(0, Math.min(var5.length(), var7.length()));
- if (var5.equals(var8)) {
- String var9 = var7.substring(var5.length());
- super.insertString(var1 + 1, var9, var3);
- this.fld.select(var1 + 1, var1 + 1 + var9.length());
- return;
- }
- }
-
- Toolkit.getDefaultToolkit().beep();
- }
- }
- }
- }
-